SSC集群搭建
数据库安装
调优操作系统参数
根据节点硬件和软件具体情况,调整默认操作系统参数,包括但不限于:
- /etc/sysctl.conf
#操作系统核心参数设置
#使用root用户在 /etc/sysctl.conf 中加入
kernel.shmmax = 4398046511104
kernel.shmall = 4294967296
kernel.sem = 250 32000 32 4096
vm.swappiness = 0
#使用root用户执行 sysctl -p 使修改的核心参数动态生效
- /etc/security/limits.conf
#永久修改ulimit的nofiles参数
#使用root用户在 /etc/security/limits.conf 中加入
* soft nofile 102400
* hard nofile 102400
#然后重新登录用户
- RHEL6.5:/etc/security/limits.d/90-nproc.conf,CentOS7:/etc/security/limits.d/20-nproc.conf
#增加内容
* soft nproc 4096
root soft nproc unlimited
gbasedbt soft nproc unlimited
关闭或配置防火墙
操作系统自带的防火墙可能限制数据库端口的访问,因此,需要关闭各节点防火墙或者设置各节点的防火墙策略,开放相应的端口。例如,RHEL7或CentOS7中关闭防火墙的操作命令如下:
注意:需使用root用户执行。
RHEL6.5:
[root@PRIMARY ~]# service iptables stop
CentOS7:
[root@primary ~]# systemctl stop firewalld
关闭SELinux
关闭selinux,避免对数据库软件安装的影响。以下示例分别是临时关闭和永久关闭selinux的方法。
注意:需使用root用户执行。
立刻关闭:
[root@PRIMARY ~]# /usr/sbin/setenforce 0
永久关闭:
[root@PRIMARY ~]# vim /etc/selinux/config
#SELINUX=enforcing
#SELINUXTYPE=targeted
SELINUX=disabled
安装数据库软件
GBase 8s详细安装步骤请参考单机版安装,集群环境建议选择Custom installation,并使用各缺省选项,不创建实例。
数据库配置
假设主节点实例名为gbaseserver,然后两个辅节点的实例名分别为gbaseserver1和gbaseserver2。以下数据库的配置均以主节点的数据库配置为例,两个辅节点数据库配置中实例相关的参数修改为对应辅节点的实例名即可(配置文件的名称无需修改)。
创建数据目录
进入安装目录,创建数据目录
[root@PRIMARY ~]# cd /opt/GBASE/gbase
[root@PRIMARY gbase]# su gbasedbt
[gbasedbt@PRIMARY gbase]$ mkdir gbaeserver_dbs
配置profile.gbaseserver环境变量文件
以 gbasedbt 用户身份,将默认环境变量 .bash_profile 文件复制一份,命名为 profile.gbaseserver,修改文件信息并保存。
[root@PRIMARY ~]# cd /home/gbasedbt/
[root@PRIMARY gbasedbt]# su gbasedbt
[gbasedbt@PRIMARY ~]$ vim profile.gbaseserver
内容示例如下:
export GBASEDBTSERVER=gbaseserver
export GBASEDBTDIR=/opt/GBASE/gbase
export GBASEDBTSQLHOSTS=/opt/GBASE/gbase/etc/sqlhosts.gbaseserver
export ONCONFIG=onconfig.gbaseserver
export PATH=/opt/GBASE/gbase/bin:$PATH
export DB_LOCALE=zh_CN.GB18030-2000
export CLIENT_LOCALE=zh_CN.GB18030-2000
export GL_USEGLU=1
为了gbasedbt用户在登录后自动应用这些环境变量,可以修改.bash_profile文件,在文件后添加如下内容:
source /home/gbasedbt/profile.gbaseserver
配置sqlhosts.gbaseserver文件
以gbasedbt用户身份,将安装目录中的 sqlhosts.std 文档复制一份,命名为 sqlhost.gbaseserver。
[root@PRIMARY ~]# su gbasedbt
[gbasedbt@PRIMARY ~]$ cd /opt/GBASE/gbase/etc
[gbasedbt@PRIMARY etc]$ vim sqlhosts.gbaseserver
sqlhosts文件中需要将本次的3个节点的实例名、连接方式、IP、端口配置正确,示例如下:
gbaseserver onsoctcp 192.168.5.100 9088
gbaseserver1 onsoctcp 192.168.5.101 9088
gbaseserver2 onsoctcp 192.168.5.102 9088
配置onconfig.gbaseserver参数文件
以gbasedbt用户身份,将安装目录中的onconfig.std文件复制一份,命名为onconfig.gbaseserver。
[gbasedbt@PRIMARY etc]$ cp onconfig.std onconfig.gbaseserver
[gbasedbt@PRIMARY etc]$ vim onconfig.gbaseserver
主要参数说明如下:
参数 | 值 | 说明 |
---|---|---|
ROOTNAME | rootdbs | 指定数据库服务器root dbspace的名称 |
ROOTPATH | $GBASEDBTDIR/gbaseserver_dbs/rootdbs | 指定root dbspace的初始chunk全路径名,包括设备或文件 |
ROOTSIZE | 500000 | 指定以KB为单位的root dbspace的初始chunk的大小,500000即500M左右 |
PHYSFILE | 100000 | 指定物理日志文件大小,100000即100M左右 |
MSGPATH | $GBASEDBTDIR/gbaseserver.log | 指定消息日志文件的全路径名 |
DBSPACETEMP | dbspacetemp | 指定临时数据空间的名称 |
SBSPACETEMP | sbspacetemp | 指定临时智能大对象空间的名称 |
SBSPACENAME | sbspace | 指定智能大对象空间的名称 |
SERVERNUM | 1 | 指定共享内存中的相对位置,取值范围为0-255,多个数据库实例时候需要确保SERVERNUM唯一 |
DBSERVERNAME | gbaseserver | 数据库实例名 |
DRAUTO | 3 | 指定由连接管理器控制 |
SDS_ENABLE | 主节点值为0,从节点的值修改为1 | 是否启用辅助服务器功能 |
SDS_TEMPDBS | sdsdbspacetemp,$GBASEDBTDIR/sds_dbs/sdsdbspacetemp,2,0,51200 | 指定共享磁盘辅助服务器用于动态地创建临时数据空间的信息,2k大小,偏移量0,共50M |
SDS_PAGING | $GBASEDBTDIR/sds_dbs/paging1,$GBASEDBTDIR/sds_dbs/paging2 | 指定两个作为缓冲区的文件信息 |
注意:相关参数中用到的文件不存在的需要以gbasedbt用户身份touch。
[gbasedbt@PRIMARY etc]$ cd /opt/GBASE/gbase/
[gbasedbt@PRIMARY gbase]$ mkdir sds_dbs
[gbasedbt@PRIMARY gbase]$ cd sds_dbs
[gbasedbt@PRIMARY sds_dbs]$ touch sdsdbspacetemp paging1 paging2
[gbasedbt@PRIMARY sds_dbs]$ chmod 660 sdsdbspacetemp paging1 paging2
由于默认权限高,为了安全需要chown为660
链接数据chunk文件到裸设备上
以gbasedbt用户身份执行如下命令,链接数据chunk文件到裸设备上,其中raw4是扩展分区跳过。
ln -s /dev/raw/raw1 $GBASEDBTDIR/gbaseserver_dbs/rootdbs
ln -s /dev/raw/raw2 $GBASEDBTDIR/gbaseserver_dbs/llogdbs
ln -s /dev/raw/raw3 $GBASEDBTDIR/gbaseserver_dbs/plogdbs
ln -s /dev/raw/raw5 $GBASEDBTDIR/gbaseserver_dbs/dbspace
ln -s /dev/raw/raw6 $GBASEDBTDIR/gbaseserver_dbs/dbspacetemp
ln -s /dev/raw/raw7 $GBASEDBTDIR/gbaseserver_dbs/sbspace
ln -s /dev/raw/raw8 $GBASEDBTDIR/gbaseserver_dbs/sbspacetemp
注意:3个节点均需要链接数据chunk文件到裸设备。
配置节点互信任
集群节点间需要配置互信,以保障同一用户在不同主机间的信任。
使用vim /home/gbasedbt/.rhosts命令,修改.rhosts文件并保存(如果没有该文件则需创建),内容如下:
192.168.5.100 gbasedbt
192.168.5.101 gbasedbt
192.168.5.102 gbasedbt
搭建集群关系
以gbasedbt用户身份登录,并执行 source /home/gbasedbt/.bash_profile命令设置为数据库环境变量。接下来初始化数据库实例,操作如下:
- 在PRIMARY:192.168.5.100节点执行如下命令,初始化并启动数据库服务,确认不报错
[gbasedbt@PRIMARY ~]$ oninit -ivwy
其中的-i选项表示初始化磁盘空间并使数据库服务器进入联机方式,-v选项表示打印所有过程信息,-w选项表示使服务器等待直至初始化成功,-y选项表示对所有提示默认选择YES。
从节点不需要初始化实例。
- 在PRIMARY:192.168.5.100节点执行如下命令,让此节点成为集群的主节点,并确认不报错
[gbasedbt@PRIMARY ~]$ onmode -d set SDS primary gbaseserver
其中gbaseserver是实例名,SDS大写
- 在SSC1:192.168.5.101节点和SSC2:192.168.5.102节点执行如下命令,启动辅节点数据库服务,并确认不报错
[gbasedbt@PRIMARY ~]$ oninit -vy
查看节点状态
当从节点没有启动时,在PRIMARY:192.168.5.100节点执行onstat -g sds,可以看到On Line状态。在SSC1:192.168.5.101节点执行oninit -vy启动数据库服务。此时在PRIMARY:192.168.5.100节点执onstat -g sds可以看到SSC1已经加入。
[gbasedbt@PRIMARY ~]$ onstat -g sds
Your evaluation license will expire on 2021-04-27 00\:00\:00
GBase Database Server Version 12.10.FC4G1TL -- On-Line -- Up 00:02:03 -- 198912 Kbytes
Local server type: Primary
Number of SDS servers:1
SDS server information
SDS srv SDS srv Connection Last LPG sent Supports
name status status (log id,page) Proxy Writes
gbaseserver1 Active Connected 1,27814 N
在SSC1:192.168.5.101节点执行onstat -g sds 可以看到Soruce server信息。
[gbasedbt@SSC1 ~]$ onstat -g sds
Your evaluation license will expire on 2021-04-27 00\:00\:00
GBase Database Server Version 12.10.FC4G1TL -- Read-Only (SDS) -- Up 00:02:05 -- 198912 Kbytes
Local server type: SDS
Server Status : Active
Source server name: gbaseserver
Connection status: Connected
Last log page received(log id,page): 1,27814
然后在SSC2:192.168.5.102节点执行oninit -vy。此时在PRIMARY:192.168.5.100节点执行onstat -g sds看到第二台SSC2也加入了。
[gbasedbt@PRIMARY ~]$ onstat -g sds
Your evaluation license will expire on 2021-04-27 00\:00\:00
GBase Database Server Version 12.10.FC4G1TL -- On-Line -- Up 00:04:53 -- 198912 Kbytes
Local server type: Primary
Number of SDS servers:2
SDS server information
SDS srv SDS srv Connection Last LPG sent Supports
name status status (log id,page) Proxy Writes
gbaseserver1 Active Connected 1,27826 N
gbaseserver2 Active Connected 1,27826 N
至此SSC安装成功。
验证SSC
SSC集群安装成功后,客户端可以通过JDBC访问服务端。例如使用GBaseDataStudio连接到PRIMARY:192.168.5.100节点、SSC1:192.168.5.101节点、SSC2:192.168.5.102节点。对PRIMARY节点执行insert、update、delete操作,主节点对数据的修改可以在其他SSC节点体现。默认情况下SSC节点不支持写操作,如需支持,可通过onconfig文件的UPDATABLE_SECONDARY参数进行配置。